Como realizar validaciones utilizando las anotaciones de Spring
Pimero antes de nada tenemos que indicar las dependencias en el archivo pom.xml, añadimos el siguiente codigo en el archivo:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
Para hacer las comprobaciones tenemos que añadir las etiquetas con las comprobaciones que queremos hacer dentro del modelo, por ejemplo:
IMPORTANTE: Las etiquetas de validacion se tienen que poner en el modelo si se ponen en un DTO tendremos que utilizar la anotacion @Valid para indicar que se haga la comprobacion en esa clase en concreto
@Column(name="NAME")
@Size(max = 5)
private String name;
En este caso utilizamos la etiqueta @Size para indicar el tamaño maximo que puede tener el string name, 5 caracteres en este caso.
Cuando una validacion no se cumple lo que ocurre es que se lanza una excepcion, concretamente se lanza la excepcion ConstraintViolationException, podemos utilizar la etiqueta @ExceptionHandler para manejar la excepcion y dar el comportamiento que queramos.
@ExceptionHandler( ConstraintViolationException.class)
public String invalidFields(Exception e) {
return "La cadena de caracteres no puede ser mayor de 5";
}
A mayores podemos usar la anotacion @Valid que permite indicar que un objeto se debe de validar en su totalidad, la etiqueta la colocariamos tal que asi en un controlador por ejemplo:
NOTA: Las etiquetas de validacion se tienen que poner en el modelo si se ponen en un DTO tendremos que utilizar la anotacion @Valid para indicar que se haga la comprobacion en esa clase en concreto
@PostMapping("/postDBInfo")
public Persona postDBInfo(@Valid @RequestBody Persona persona){
return repositorio.save(persona);
}
Cuando usamos la etiqueta @Valid la excepcion que se devuelve es MethodArgumentNotValidException, en este caso deberiamos de indicarla en la manejador para poder controlar la excepcion
Algunas de las etiquetas de validacion son:
Spring | Validations